1. Technical Field
The present invention relates in general to storage system controllers for data processing systems, and more particularly to a method and system for managing communication between a storage system controller and a plurality of direct access storage devices. Still more particularly, the present invention relates to a method and system for reducing the amount of storage path processor time consumed by polling direct access storage devices for interrupt status data.
2. Description of the Related Art
In large data processing systems, it is common to utilize specialized hardware and software to control input/output devices. An example of one such specialized device is the "3990 Model 3 Storage Control" available from International Business Machines Corporation. The 3990 is a storage system controller which, in part, off-loads host-processor workload by receiving input/output commands from the host computer system, translates these commands to the Direct Access Storage Device (DASD), and manages the transfer of data between the host computer and the DASD. In performing these functions, the storage system controller transmits commands and data to a plurality of DASDs, each connected to the storage system controller via multiple communication links.
Typically, the communication links utilized to connect the storage system controller to the DASDs are a high speed parallel communications links. One example of such a communications link is the "Director to Device Connection" (DDC) interface, available from International Business Machines Corporation. The DDC consists of 24 differential signal lines and is designed to meet the objectives of high data transfer rate on a two-byte wide bus over a maximum external cable length of 61 meters (200 feet).
A storage path processor within the storage system controller sends a command to a particular DASD via the DDC. After the command is sent, the storage path processor must repeatedly poll or request interrupt status data from the particular DASD to determine whether or not the DASD is finished with the previous command and is ready to transfer data or execute the next command. Within the storage system controller, such a polling function may utilize up to twenty percent of the storage path processor's processing time.
Such a high percentage of processing time is consumed by the polling function for three reasons. First, because the disk in the DASD continuously rotates, the DASD interrupt status data is valid only for a specified period of time while the angular position of the platter is located within a specified angular range. To ensure the DASD's interrupt status data is read while it is valid, the DASDs must be polled within a specified maximum period of time. If the time between successive readings of interrupt status data from a particular DASD exceeds a maximum time period, valid interrupt status data may be missed. Second, since the DASD does not immediately respond to a request for interrupt status data when requested by the storage path processor, the storage path processor must wait idly for a response from the polled DASD. Such idle time consumes time that might otherwise be utilized to manage other overhead tasks. And third, because often the storage path processor does not have enough time to poll every connected DASD within the maximum time interrupt status data is valid, polling may be divided into two parts: a summary poll and a substring poll. The summary poll returns composite interrupt status data (each interrupt status data bit represents the status of more than one DASD) to the storage path processor. This requires the storage path processor to execute two poll requests to determine which particular DASD has interrupt status data indicating that the previous operation is complete. The first poll, which is a summary poll, may return interrupt status data indicating that a DASD within a group of DASDs has completed a command. A second poll is then required to determine which particular DASD within the group is indicating a "command complete" status.
In known storage system controllers having a parallel communication link for communicating with multiple DASDs, the storage path processor within the storage system controller performs the polling function to collect interrupt status data representing the status of each associated DASD. In order to avoid missing a change in interrupt status data within any storage device, the path processor must complete the entire polling cycle (request interrupt status data from each DASD) within a specific maximum window of time while the storage device interrupt status data is valid. Since this window of time is often not large enough for the storage path processor to individually poll every associated DASD, the storage path processor must utilize a summary poll and a substring poll. Consequently, a high percentage of processor time is consumed polling for interrupt status data from the connected DASDs. Thus it should be obvious to one skilled in the art that a need exists for a method and system to independently perform the polling function and thereby relieve the storage path processor from a task that may consume up to twenty percent of the available processing time.